typedef struct ListNode LTNode; 
struct ListNode *detectCycle(struct ListNode *head) {
    LTNode* low = head;
    LTNode* fast = head;
    while (fast && fast->next)
    {
        low = low->next;
        fast = fast->next->next;
        if (low == fast)
        {
            LTNode* begin = head;
            while (begin != low)
            {
                begin = begin->next;
                low = low->next;
            }
            return begin;
        }
    
    } 
    return NULL; 
}